FIG. 1 illustrates a hypervisor 100 running a virtual machine 102. In computer science, a hypervisor is a piece of computer software, firmware, or hardware that creates and runs virtual machines. A hypervisor may also be called a virtual machine monitor (VMM). A computer on which a hypervisor is running a virtual machine may be referred to as a “host machine.” The virtual machine running on the hypervisor may be referred to as a “guest machine.” A hypervisor provides a virtual operating platform for a guest operating system. The hypervisor also manages execution of the guest operating system. Multiple instances of guest operating systems may share virtualized hardware resources. A virtual machine (VM) is a software implemented abstraction of a set of underlying computer hardware. VMs are based on the specifications of a hypothetical computer and may, therefore, emulate the computer architecture of a tangible computer, including the functions of the tangible computer.
FIG. 1 illustrates primary data store 112 as a virtualized hardware resource. The primary data store 112 may be associated with different actual hardware devices. In one example, de-duplication storage 120 may be the actual hardware resource that supports the virtualized hardware resource. Other actual hardware resources may support other virtualized hardware resources.
Some hypervisors may use virtual machine snapshots to improve the input/output (I/O) characteristics of a virtual machine (VM). A hypervisor may be configured to allow or cause a virtual machine to write a snapshot to a data store. A VM snapshot may be, for example, a file-based view of the state, disk data, memory, configuration, and other information associated with a VM at a specific point in time. A snapshot may be created for different reasons. It is possible to take multiple snapshots of a VM. A snapshot may be acquired even while a VM is running. A snapshot may be treated as a whole or may have its contents accessed individually. A snapshot may preserve the state and data of a VM at a specific point in time. The state may include, for example, the VM's power state (on, off, suspended). The data may include, for example, all the files touched by the VM and all the files that make up the VM. The data may also include, for example, information from disks, memory, and other devices touched by the VM.